package Predicate;

import java.util.function.Predicate;

/**
 * @Author: ylc
 * @Description:Predicate接口中有一个默认方法and,表示并且（&&）关系,也可以用于连接两个判断条件
 *      其余默认方法：
 *          or <==> ||
 *          negate <==> !
 * @Date Created in 2022-05-02 17:17
 */
public class Demo2And {
    public static boolean checkString(String s, Predicate<String> pre1, Predicate<String> pre2){
        //return pre1.test(s) && pre2.test(s);
        return pre1.and(pre2).test(s);//等价于return pre1.test(s) && pre2.test(s);
    }

    public static void main(String[] args) {
        String s = "abcdef";
        //调用checkString方法,参数传递字符串和两个Lambda表达式
        boolean b = checkString(s, (String str) -> {
            //判断字符串的长度是否大于5
            return str.length() > 5;
        }, (String str) -> {
            //判断字符串中是否包含a
            return str.contains("a");
        });
        System.out.println(b);
    }
}
